[极客大挑战 2019]Secret File 1

首先查看源代码,找到入口./Archive_room.phpimage-20211030113938928

进入Archiv_room.php, 点击按钮并抓包image-20211030114045966

可以看到逻辑就是点击按钮服务器指定跳转到end.php , 返回的内容中有secr3t.php

image-20211030114309440

进入secr3t.php页面,可见源代码, 有一些过滤, 但是貌似不影响操作image-20211030114612553

先试试file=flag.phpimage-20211030114947337

显然是不行的, flag就在flag.php中, 但是没有被显示出来我们需要拿到flag.php的源代码才行

这里采用php伪协议, 实现文件包含, 将源代码文件转换成base64编码显示出来(为什么要用base64编码?因为include引入的文件如果是php文件会被直接执行, 这样就拿不到源码了, 而如果是非php文件就会被显示出来)

构造payload:

1
file=php://filter/read=convert.base64-encode/resource=flag.php
image-20211030120426834

再把base64编码的源代码解码就可以拿到flag

image-20211030120555576